/*
 * @(#)Food.java			0.1 27/11/2010
 * Copyright (C) 2010 Grupo de Alunos abaixo
 * 
 * Universidade Federal do ABC
 * Vida Artificial - 3o quadrimestre de 2010
 * Aluno: Abner
 * Aluno: Cláudio Antônio Peanho
 * Aluno: Fabrizio Borelli
 * Aluna: Maitê Balhester
 * Aluno: Rafael Munhoz
 * Professora Dr. Karla Vittori
 * Projeto: Simulação de Colônia de Formigas (antcolonyswarm)
 * 
 * Código baseado em jheatbugs-3.0 de Timothy Howe
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package br.edu.ufabc.va.acs.model.agent;

import br.edu.ufabc.va.acs.controller.GraphicObject;
import swarm.gui.Raster;

/**
 * @author Peanho
 * 
 */
public class Food implements GraphicObject {

	/** quantidade de comida disponível */
	private int			amount;

	/** coordenada no eixo x na grade bidimensional */
	private final int	xPos;

	/** coordenada no eixo y na grade bidimensional */
	private final int	yPos;

	/** indíce máximo de cor */
	private final int	maxColorValue;

	/** indíce mínimo de cor */
	private final int	minColorValue;

	/** intervalo no índice de cores */
	private final int	colorInterval;

	/**
	 * Cria e configura uma nova instância.
	 * 
	 * @param amount
	 *            quantidade de comida
	 * @param maxColorValue
	 *            valor de cor máximo
	 * @param minColorValue
	 *            valor de cor mínimo
	 */
	public Food(int amount, int maxColorValue, int minColorValue, int xPos,
			int yPos) {
		this.amount = amount;
		this.xPos = xPos;
		this.yPos = yPos;
		this.maxColorValue = maxColorValue;
		this.minColorValue = minColorValue;
		this.colorInterval = maxColorValue - minColorValue;
	}

	/**
	 * decrementa a aquantidade de comida por uma unidade.
	 */
	public void decreaseOneUnit() {
//		amount--;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * br.edu.ufabc.va.acs.controller.GraphicObject#drawSelfOn(swarm.gui.Raster)
	 */
	@Override
	public Object drawSelfOn(Raster raster) {
		int colorIndex = amount > colorInterval ? maxColorValue : amount;
		raster.drawPointX$Y$Color(xPos, yPos, (byte) colorIndex);
		return this;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see br.edu.ufabc.va.acs.controller.GraphicObject#setColorIndex(byte)
	 */
	@Override
	public void setColorIndex(byte colorIndex) {
		// não faz nada
	}

}
